package cn.itrigger.publish;

import cn.itrigger.config.VersionConfig;
import cn.itrigger.utils.CommandLineUtils;
import cn.itrigger.utils.GitOperatorUtils;

import java.util.ArrayList;
import java.util.List;

public abstract class ReleaseVersionPublish extends VersionPublish<Void> {

    /**
     * 更新pom.xml的版本号
     * @param newVersion
     */
    public void updateVersion(String newVersion) {
        String result = CommandLineUtils.execCmdWithResult("mvn versions:set -DnewVersion=" + newVersion);
        System.out.println(result);
    }

    /**
     * 提交pom.xml文件列表
     */
    public void commitPoms(VersionConfig config) {
        //待提交的文件列表
        String[] diff = GitOperatorUtils.diff();
        List<String> pomFiles = new ArrayList<>();
        if (null == diff || diff.length == 0) {
            System.err.println("本地文件无修改，无法完成commit操作");
            return;
        }
        for (String str : diff) {
            if (str.endsWith("pom.xml")) {
                pomFiles.add(str);
            }
        }
        if (pomFiles.isEmpty()) {
            System.err.println("待提交的pom.xml文件列表为空，无法完成commit操作");
            return;
        }
        GitOperatorUtils.config(config);
        GitOperatorUtils.commit(pomFiles);
    }



}
